home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / data / fapx / fapxfree.plp < prev    next >
Text File  |  1994-11-16  |  24KB  |  958 lines

  1. /************************************************************************
  2. *    チャット等の自由行動の処理の定義の定義  Ver. 不明        *
  3. *    改造(特攻)野郎 → GFF00430 えんでん(長野(期間限定))    *
  4. *                      と                *
  5. *                VFA03257 フェイス(北九州)            *
  6. *                    FAPX自由行動開発倶楽部    *
  7. *************************************************************************/
  8. %retFAPX{
  9.     case(CHeck={Yes},{Yes},{LOGforum({freelog},{stop});CHeck:={No}});
  10.     footnote({自由行動の終了処理中です});
  11.     gotoTOP(1);
  12.     display({自由行動を終了しました\n});
  13.     Where:={};
  14.     };
  15.  
  16. %SEC {5};
  17.  
  18. %Wm    {
  19.     case    (CHeck,
  20.         {Yes},
  21.         {
  22.         SNDMSG({kaknin_f.snd});
  23.         footnote({自由行動のログはどうします?});
  24.         select ({記録を終了しますか?},
  25.             Wtime4,,
  26.             { 記録終了 },{LOGforum({freelog},{stop});CHeck:={No}},
  27.             {終了しない},
  28.             )
  29.         },
  30.         {No},
  31.         {
  32.         case    (FREC,
  33.             {Yes},{LOGforum({freelog},{start});CHeck:={Yes}},
  34.             {No},,
  35.             ,
  36.             {
  37.             SNDMSG({kaknin_f.snd});
  38.             footnote({自由行動のログはどうします?});
  39.             select ({記録を開始しますか?},
  40.                 Wtime4,,
  41.                 { 記録開始 },
  42.                 {LOGforum({freelog},{start});CHeck:={Yes}},
  43.                 {開始しない},
  44.                 );
  45.             });
  46.         });
  47.     };
  48.  
  49. /*    経過時間チェック    */
  50. %TIMECHK{
  51.     %dt    @daylong;
  52.     %dt1    @getchar(dt,1,4)|@getchar(dt,6,2)|@getchar(dt,9,2)|
  53.         @getchar(dt,16,2)|@getchar(dt,19,2);
  54.     case    (TIME1<>{}&&dt1>=TIME1,
  55.         {Yes},
  56.         {
  57.         SNDMSG({jikan_f.snd});
  58.         display({終了予定時刻を過ぎています\n});
  59.         },
  60.         {No},
  61.         {
  62.         case    (TIME2<>{}&&dt1>TIME2,
  63.             {Yes},
  64.             {
  65.             SNDMSG({jikan_f.snd});
  66.             display({終了予定時刻が近づいています\n});
  67.             });
  68.         });
  69.     };
  70.  
  71. var    TIME1    [12];    /* 終了予定時刻 */
  72. var    TIME2    [12];    /* 終了予告時刻    */
  73. var    TIME3    [2];    /* 予告時間(分)    */
  74.  
  75. %SetEndTime{
  76.     var    YYY1    [4];
  77.     var    M1    [2];
  78.     var    D1    [2];
  79.     var    H1    [2];
  80.     var    m1    [2];
  81.     var    time1    [12];
  82.     var    time3    [2];
  83.     case    (TIME1={},
  84.         {Yes},
  85.         {
  86.         %t    @daylong;
  87.         %YYY1    @getchar(t,1,4);
  88.         %M1    @getchar(t,6,2);
  89.         %D1    @getchar(t,9,2);
  90.         %H1    @getchar(t,16,2);
  91.         %m1    @getchar(t,19,2);
  92.         time1:=    @YMDtoMIN(YYY1|M1|D1|H1|m1)+FREETIME;
  93.         time3:=    { 4};
  94.         },
  95.         {No},
  96.         {
  97.         YYY1:=    @getchar(TIME1,1,4);
  98.         M1:=    @getchar(TIME1,5,2);
  99.         D1:=    @getchar(TIME1,7,2);
  100.         H1:=    @getchar(TIME1,9,2);
  101.         m1:=    @getchar(TIME1,11,2);
  102.         time1:=    @YMDtoMIN(YYY1|M1|D1|H1|m1);
  103.         time3:=    @case    (TIME3,
  104.                 0,{im({ 4})},5,{im({ 1})},
  105.                 10,{im({ 2})},30,{im({ 3})},
  106.                 ,{im({ 4})});
  107.         });
  108.     loop    ({
  109.         %t    @daylong;
  110.         %YYYY    @getchar(t,1,4);
  111.         %MM    @getchar(t,6,2);
  112.         %DD    @getchar(t,9,2);
  113.         %HH    @getchar(t,16,2);
  114.         %mm    @getchar(t,19,2);
  115.         %t1    @MINtoYMD(time1);
  116.         %YYY1    @getchar(t1,1,4);
  117.         %M1    @getchar(t1,5,2);
  118.         %D1    @getchar(t1,7,2);
  119.         %H1    @getchar(t1,9,2);
  120.         %m1    @getchar(t1,11,2);
  121.         %a     @plane(    {c自由行動の終了予定時刻を指定してください\n}|
  122.                 {c  現在時刻は   }|YYYY|{年 }|MM|{月 }|DD|{日 }|
  123.                         HH|{時 }|mm|{分 です\n}|
  124.                 {c\n}|
  125.                 {c  終了予定時刻 }|YYY1|{年 }|M1|{月 }|D1|{日 }|
  126.                         H1|{時 }|m1|{分 \n}|
  127.                 {s               /-1時間/ -10分/  -1分}|
  128.                         {/  +1分/ +10分/+1時間\n}|
  129.                 {c\n}|
  130.                 {r  終了予告時刻 / 5分前/10分前/30分前}|
  131.                         {/しない\n}|
  132.                 {s              / 設 定 / 取 消 / 無変更 \n},
  133.                 time3);
  134.         %sel1    @head(@getline(a,1,1),{\n});
  135.         time3:=    @head(@getline(a,2,1),{\n});
  136.         %ok    @head(@getline(a,3,1),{\n});
  137.         case    (sel1,
  138.             { 1},{time1:=time1-60},
  139.             { 2},{time1:=time1-10},
  140.             { 3},{time1:=time1-1},
  141.             { 4},{time1:=time1+1},
  142.             { 5},{time1:=time1+10},
  143.             { 6},{time1:=time1+60},
  144.             );
  145.         case    (ok,
  146.             { 1},
  147.             {
  148.             TIME1:=@MINtoYMD(time1);
  149.             TIME3:=@case    (time3,
  150.                     { 1},{im(5)},
  151.                     { 2},{im(10)},
  152.                     { 3},{im(30)},
  153.                     ,{im(0)}
  154.                     );
  155.             TIME2:=@MINtoYMD(time1-TIME3);
  156.             im({No});
  157.             },
  158.             { 2},
  159.             {TIME1:={};TIME2:={};TIME3:={};im({No})},
  160.             { 3},{im({No})},
  161.             ,{im({Yes})}
  162.             );
  163.         });
  164.     };
  165.  
  166. /* 西暦日付時刻(YYYYMMDDHHmm)から1901/01/01 00:00起点通し時間(分)への変換 */
  167. /*     注意! 西暦1901年から2099年までのみ対応    */
  168. %YMDtoMIN{
  169.     [yyyymmdd]
  170.     %YYYY    @getchar(yyyymmdd,1,4);
  171.     %MM    @getchar(yyyymmdd,5,2);
  172.     %DD    @getchar(yyyymmdd,7,2);
  173.     %HH    @getchar(yyyymmdd,9,2);
  174.     %mm    @getchar(yyyymmdd,11,2);
  175.     var    DAYS    [6];
  176.     var    MINS    [10];
  177.     DAYS:=(YYYY-1901)*365+(YYYY-1901)/4;
  178.     case    ((YYYY-YYYY/4*4)!=0,
  179.         {Yes},
  180.         {
  181.         case    (MM,
  182.             {01},{DAYS:=DAYS+0},
  183.             {02},{DAYS:=DAYS+31},
  184.             {03},{DAYS:=DAYS+59},
  185.             {04},{DAYS:=DAYS+90},
  186.             {05},{DAYS:=DAYS+120},
  187.             {06},{DAYS:=DAYS+151},
  188.             {07},{DAYS:=DAYS+181},
  189.             {08},{DAYS:=DAYS+212},
  190.             {09},{DAYS:=DAYS+243},
  191.             {10},{DAYS:=DAYS+273},
  192.             {11},{DAYS:=DAYS+304},
  193.             {12},{DAYS:=DAYS+334}
  194.             );
  195.         },
  196.         {No},
  197.         {
  198.         case    (MM,
  199.             {01},{DAYS:=DAYS+0},
  200.             {02},{DAYS:=DAYS+31},
  201.             {03},{DAYS:=DAYS+60},
  202.             {04},{DAYS:=DAYS+91},
  203.             {05},{DAYS:=DAYS+121},
  204.             {06},{DAYS:=DAYS+152},
  205.             {07},{DAYS:=DAYS+182},
  206.             {08},{DAYS:=DAYS+213},
  207.             {09},{DAYS:=DAYS+244},
  208.             {10},{DAYS:=DAYS+274},
  209.             {11},{DAYS:=DAYS+305},
  210.             {12},{DAYS:=DAYS+335}
  211.             );
  212.         });
  213.     DAYS:=DAYS+DD-1;
  214.     MINS:=DAYS*24*60+HH*60+mm;
  215.     im(MINS);
  216.     };
  217.  
  218. /* 1901/01/01 00:00起点通し時刻(分)から 西暦日付時刻への変換 */
  219. /*     注意! 西暦1901年から2099年までのみ対応    */
  220. %MINtoYMD{
  221.     [MINS]
  222.     var    MM    [2];
  223.     var    DD    [2];
  224.  
  225.     %mm    MINS-(MINS/60)*60;
  226.     %HOURS    (MINS-mm)/60;
  227.     %HH    HOURS-HOURS/24*24;
  228.     %DAYS    (HOURS-HH)/24;
  229.     %days4    DAYS-DAYS/(365*4+1)*(365*4+1);
  230.     %YYYY    (DAYS/(365*4+1))*4+1901+days4/365-days4/(365*4);
  231.     %days    @case    (days4>365*3,
  232.             {Yes},{im(days4-365*3)},
  233.             {No},{im(days4-days4/365*365)}
  234.             );
  235.     case    ((YYYY-YYYY/4*4)!=0,
  236.         {Yes},
  237.         {
  238.         case(days>=334,{Yes},{MM:={12};DD:=days-334+1},
  239.         ,{case(days>=304,{Yes},{MM:={11};DD:=days-304+1},
  240.         ,{case(days>=273,{Yes},{MM:={10};DD:=days-273+1},
  241.         ,{case(days>=243,{Yes},{MM:={09};DD:=days-243+1},
  242.         ,{case(days>=212,{Yes},{MM:={08};DD:=days-212+1},
  243.         ,{case(days>=181,{Yes},{MM:={07};DD:=days-181+1},
  244.         ,{case(days>=151,{Yes},{MM:={06};DD:=days-151+1},
  245.         ,{case(days>=120,{Yes},{MM:={05};DD:=days-120+1},
  246.         ,{case(days>=90,{Yes},{MM:={04};DD:=days-90+1},
  247.         ,{case(days>=59,{Yes},{MM:={03};DD:=days-59+1},
  248.         ,{case(days>=31,{Yes},{MM:={02};DD:=days-31+1},
  249.         ,{MM:={01};DD:=days+1}
  250.         )})})})})})})})})})})},
  251.         {No},
  252.         {
  253.         case(days>=335,{Yes},{MM:={12};DD:=days-335+1},
  254.         ,{case(days>=305,{Yes},{MM:={11};DD:=days-305+1},
  255.         ,{case(days>=274,{Yes},{MM:={10};DD:=days-274+1},
  256.         ,{case(days>=244,{Yes},{MM:={09};DD:=days-244+1},
  257.         ,{case(days>=213,{Yes},{MM:={08};DD:=days-213+1},
  258.         ,{case(days>=182,{Yes},{MM:={07};DD:=days-182+1},
  259.         ,{case(days>=152,{Yes},{MM:={06};DD:=days-152+1},
  260.         ,{case(days>=121,{Yes},{MM:={05};DD:=days-121+1},
  261.         ,{case(days>=91,{Yes},{MM:={04};DD:=days-91+1},
  262.         ,{case(days>=60,{Yes},{MM:={03};DD:=days-60+1},
  263.         ,{case(days>=31,{Yes},{MM:={02};DD:=days-31+1},
  264.         ,{MM:={01};DD:=days+1}
  265.         )})})})})})})})})})})}
  266.         );
  267.     im(@ZERO(YYYY,4)|@ZERO(MM,2)|@ZERO(DD,2)|@ZERO(HH,2)|@ZERO(mm,2));
  268.     };
  269.  
  270. /************************************************************************
  271. *    自由行動メイン                            *
  272. ************************************************************************/
  273. %GOCHAT    {
  274.     case    (AM3={Yes}||AM3={Detail},
  275.         {Yes},
  276.         {display({夜間自動実行のため、自由行動は省略します\n});Ex:={Y}},
  277.         {No},
  278.         {
  279.         type({SET PAGE ON\n});
  280.         WAITABORT(Wtime2);
  281.         SetEndTime;
  282.         display({自由行動を開始します\n});
  283.         CHeck:={No};
  284.         Wm;
  285.         Where:={};
  286.         DLMFLAG:={No};
  287.         chat({Yes});
  288.         /*****メニュー開始*****/
  289.         loop    ({
  290.             footnote({終了記録MAILPAD     }|
  291.                 {通常▼▼ 他 ▲▲RTC アラーム清書},{b});
  292.             waitx(300);
  293.             TIMECHK;
  294.             case    (@xtype,
  295.                 {-2},{im({Yes})},
  296.                 {101},
  297.                 {
  298.                 display({\n☆オートに復帰しますよ!\n});
  299.                 footnote({ ○ 取消},{b});
  300.                 waitx(SEC);
  301.                 case    (@xtype,
  302.                     {-2},{SNDMSG({kaknin_f.snd});im({Yes})},
  303.                     {101},{retFAPX;Ex:={Y};im({No})},
  304.                     {201},{retFAPX;Ex:={Y};im({No})},
  305.                     ,{im({Yes})}
  306.                     )
  307.                 },
  308.                 {201},
  309.                 {
  310.                 SNDMSG({kaknin_f.snd});
  311.                 footnote({終了でオートに復帰});
  312.                 select    ({本当に終了しますか?},
  313.                     Wtime4,{im({Yes})},
  314.                     {  終  了  },{retFAPX;Ex:={Y};im({No})},
  315.                     {  取  消 },{im({Yes})}
  316.                     )
  317.                 },
  318.                 {102},{Wm;im({Yes})},
  319.                 {202},{Wm;im({Yes})},
  320.                 {103},
  321.                 {
  322.                 display({\n☆メールをダウンしますよ!\n});
  323.                 %Mdow    {
  324.                     retFAPX;
  325.                     setcdir(CDIR);
  326.                     case(MLcnt<1,{Yes},{MLcnt:=-1});
  327.                     #FAPXMAIL.PLP;
  328.                     Where:={};
  329.                     };
  330.                 footnote({ ○ 取消},{b});
  331.                 waitx(SEC);
  332.                 case    (@xtype,
  333.                     {-2},{SNDMSG({kaknin_f.snd});im({Yes})},
  334.                     {101},{Mdow;im({No})},
  335.                     {201},{Mdow;im({No})},
  336.                     ,{im({Yes})}
  337.                     )
  338.                 },
  339.                 {203},
  340.                 {
  341.                 SNDMSG({kaknin_f.snd});
  342.                 footnote({メールをダウンしに行きます});
  343.                 select    ({メールをダウンしますか?},
  344.                     Wtime4,{im({Yes})},
  345.                     {ダウンする},
  346.                     {
  347.                     retFAPX;
  348.                     case(MLcnt<1,{Yes},{MLcnt:=-1});
  349.                     setcdir(CDIR);
  350.                     #FAPXMAIL.PLP;
  351.                     Where:={};
  352.                     im({No});
  353.                     },
  354.                     {  取 消 },{im({Yes})}
  355.                     )
  356.                 },
  357.                 {104},
  358.                 {
  359.                 display({\nPAD処理を行います\n});
  360.                 footnote({ ○ 取消},{b});
  361.                 waitx(SEC);
  362.                 case    (@xtype,
  363.                     {-2},{SNDMSG({kaknin_f.snd});im({Yes})},
  364.                     {101},{retFAPX;execPAD;im({No})},
  365.                     {201},{retFAPX;execPAD;im({No})},
  366.                     ,{im({Yes})}
  367.                     )
  368.                 },
  369.                 {204},
  370.                 {
  371.                 SNDMSG({kaknin_f.snd});
  372.                 footnote({PAD処理を行います});
  373.                 select    ({PAD処理を行いますか?},
  374.                     Wtime4,{im({Yes})},
  375.                     { 実 行 },
  376.                     {retFAPX;execPAD;im({No})},
  377.                     {  取 消 },{im({Yes})}
  378.                     );
  379.                 },
  380.                 {106},{FRee1;{im({Yes})}},
  381.                 {206},{FRee1;{im({Yes})}},
  382.                 {107},{FRee1;{im({Yes})}},
  383.                 {207},{FRee1;{im({Yes})}},
  384.                 {108},{FAPXPLTX;{im({Yes})}},
  385.                 {208},{FAPXPLTX;{im({Yes})}},
  386.                 {109},{FRee2;{im({Yes})}},
  387.                 {209},{FRee2;{im({Yes})}},
  388.                 {110},{FRee2;{im({Yes})}},
  389.                 {210},{FRee2;{im({Yes})}},
  390.                 {111},{SetEndTime;{im({Yes})}},
  391.                 {211},{SetEndTime;{im({Yes})}},
  392.                 {112},{FORM;{im({Yes})}},
  393.                 {212},{FORM;{im({Yes})}},
  394.                 ,{im({Yes})}
  395.                 );
  396.             });
  397.         /*****メニュー終わり*****/
  398.         });
  399.     };
  400.  
  401. /*******************************************************************
  402. *    自由行動の処理の定義の定義の定義,その1
  403. *    ---通常用---
  404. *******************************************************************/
  405. %FRee1    {
  406.     loop    ({
  407.         footnote({▲▲GO  MAILHP  BILLANN BUL MES LIB RTC }|
  408.              {UST2PROF},{b});
  409.         waitx(300);
  410.         TIMECHK;
  411.         case    (@xtype,
  412.             {-2},{im({Yes})},
  413.             {101},{im({No})},
  414.             {201},{im({No})},
  415.             {102},
  416.             {
  417.             SNDMSG({nyuryo_f.snd});
  418.             %tmp @input({行き先を指定して下さい},,{/go });
  419.             case(tmp<>{},{Yes},{type(tmp);type({\n})});
  420.             im({Yes});
  421.             },
  422.             {202},
  423.             {
  424.             SNDMSG({nyuryo_f.snd});
  425.             %tmp @input({行き先を指定して下さい},,{go });
  426.             case(tmp<>{},{Yes},{type(tmp);type({\n})});
  427.             im({Yes});
  428.             },
  429.             {103},{type({/go mail\n});im({Yes})},
  430.             {203},{type({go mail\n});im({Yes})},
  431.             {104},{type({/go hp\n});im({Yes})},
  432.             {204},{type({go hp\n});im({Yes})},
  433.             {105},{type({/go bill\n});im({Yes})},
  434.             {205},{type({go bill\n});im({Yes})},
  435.             {106},{type({/ann\n});im({Yes})},
  436.             {206},{type({ann\n});im({Yes})},
  437.             {107},{type({/bul\n});im({Yes})},
  438.             {207},{type({bul\n});im({Yes})},
  439.             {108},{type({/mes\n});im({Yes})},
  440.             {208},{type({mes\n});im({Yes})},
  441.             {109},{type({/lib\n});im({Yes})},
  442.             {209},{type({lib\n});im({Yes})},
  443.             {110},{type({/rtc\n});im({Yes})},
  444.             {210},{type({rtc\n});im({Yes})},
  445.             {111},{type({/ust2\n});im({Yes})},
  446.             {211},{type({ust2\n});im({Yes})},
  447.             {112},
  448.             {
  449.             SNDMSG({nyuryo_f.snd});
  450.             %tmp @input({IDを指定して下さい},,{/prof });
  451.             case(tmp<>{},{Yes},{type(tmp);type({\n})});
  452.             im({Yes});
  453.             },
  454.             {212},
  455.             {
  456.             SNDMSG({nyuryo_f.snd});
  457.             %tmp @input({IDを指定して下さい},,{prof });
  458.             case(tmp<>{},{Yes},{type(tmp);type({\n})});
  459.             im({Yes});
  460.             },
  461.             ,{im({Yes})}
  462.             );
  463.         });
  464.     };
  465.  
  466. /************************************************************************
  467. *    自由行動の処理の定義の定義の定義,その2            *
  468. *    ---RTC用---                            *
  469. ************************************************************************/
  470. %FRee2    {
  471.     var MEMO[1];        /*    ハンドルリストのメモ番号    */
  472.     var CH[2];        /*    現在いるチャンネル    */
  473.     var HANDLE2[20];
  474.     var HANDLE3[500];    /*    「専念モード」用ハンドルデータ用*/
  475.     var foottxt[48];    /*    「専念モード」footnote    */
  476.     var A[2];        /*    ただのカウント用    */
  477.     CH:=1;
  478.     MEMO:=@mlast+1;
  479.     loop    ({
  480.         footnote({▼▼発言SENDPAGEPROF専念}|
  481.              {スラユーエコー 改名アラーム}|{偵察チャネル},{b});
  482.         waitx    (300,,
  483.             {(1,},{CH:={1}},
  484.             {(2,},{CH:={2}});
  485.         TIMECHK;
  486.         case    (@xtype,
  487.             {-2},{im({Yes})},
  488.             {101},{rtcend;im({No})},
  489.             {201},{rtcend;im({No})},
  490.             {102},{case(@mlast=MEMO,{Yes},{SAY});im({Yes})},
  491.             {202},{case(@mlast=MEMO,{Yes},{SAY});im({Yes})},
  492.             {103},{case(@mlast=MEMO,{Yes},{SEND});im({Yes})},
  493.             {203},{case(@mlast=MEMO,{Yes},{SEND});im({Yes})},
  494.             {104},{case(@mlast=MEMO,{Yes},{PAGE});im({Yes})},
  495.             {204},{case(@mlast=MEMO,{Yes},{PAGE});im({Yes})},
  496.             {105},{case(@mlast=MEMO,{Yes},{PROFLOOK});im({Yes})},
  497.             {205},{case(@mlast=MEMO,{Yes},{PROFLOOK});im({Yes})},
  498.             {106},{SPEMODE;im({Yes})},
  499.             {206},{SPEMODE;im({Yes})},
  500.             {108},
  501.             {
  502.             footnote({ ON  OFF取消},{b});waitx(SEC);
  503.             case    (@xtype,
  504.                 {-2},{im({Yes})},
  505.                 {101},{type({/EC ON\n});im({Yes})},
  506.                 {201},{type({/EC ON\n});im({Yes})},
  507.                 {102},{type({/EC OFF\n});im({Yes})},
  508.                 {202},{type({/EC OFF\n});im({Yes})},,
  509.                 {im({Yes})}
  510.                 );
  511.             },
  512.             {208},
  513.             {
  514.             select    ({エコー表示について選択せよ!},
  515.                 {5},{im({Yes})},
  516.                 {エコーON },{type({/EC ON\n});im({Yes})},
  517.                 {エコーOFF},{type({/EC OFF\n});im({Yes})}
  518.                 );
  519.             },
  520.             {109},
  521.             {
  522.             %tmp @input({新しいハンドルネームを入力せよ!},
  523.                     {u},{/HAndle });
  524.             case(tmp<>{},{Yes},{type(tmp|{\n})});
  525.             im({Yes});
  526.             },
  527.             {209},
  528.             {
  529.             %tmp @input({新しいハンドルネームを入力せよ!},
  530.                     {c},{/HA });
  531.             case(tmp<>{},{Yes},{type(tmp|{\n})});
  532.             im({Yes});
  533.             },
  534.             {107},{U;im({Yes})},
  535.             {207},{U;im({Yes})},
  536.             {110},{SetEndTime;im({Yes})},
  537.             {210},{SetEndTime;im({Yes})},
  538.             {111},
  539.             {
  540.             footnote({CH1 CH2 解除取消},{b});waitx(SEC);
  541.             case    (@xtype,
  542.                 {-2},{im({Yes})},
  543.                 {101},{type({/MO 1\n});im({Yes})},
  544.                 {201},{type({/MO 1\n});im({Yes})},
  545.                 {102},{type({/MO 2\n});im({Yes})},
  546.                 {202},{type({/MO 2\n});im({Yes})},
  547.                 {103},{type({/UNM\n});im({Yes})},
  548.                 {203},{type({/UNM\n});im({Yes})},,
  549.                 {im({Yes})}
  550.                 );
  551.             },
  552.             {211},
  553.             {
  554.             select    ({モニタするチャンネルを選択せよ!},
  555.                 {5},{im({Yes})},
  556.                 {チャンネル1},{type({/MOnitor 1\n});im({Yes})},
  557.                 {チャンネル2},{type({/MOnitor 2\n});im({Yes})},
  558.                 { モニタ解除 },{type({/UNMonitor\n});im({Yes})}
  559.                 );
  560.             },
  561.             {112},
  562.             {
  563.             footnote({CH1 CH2 取消},{b});waitx(SEC);
  564.             case    (@xtype,
  565.                 {-2},{im({Yes})},
  566.                 {101},{type({/C 1\n});CH:={1};im({Yes})},
  567.                 {201},{type({/C 1\n});CH:={1};im({Yes})},
  568.                 {102},{type({/C 2\n});CH:={2};im({Yes})},
  569.                 {202},{type({/C 2\n});CH:={2};im({Yes})},
  570.                 {103},{im({Yes})},
  571.                 {203},{im({Yes})},,
  572.                 {im({Yes})}
  573.                 );
  574.             },
  575.             {212},
  576.             {
  577.             select    ({移動先のチャンネルを選択せよ!},
  578.                 {5},{im({Yes})},
  579.                 {チャンネル1},
  580.                 {type({/C 1\n});CH:={1};im({Yes})},
  581.                 {チャンネル2},
  582.                 {type({/C 2\n});CH:={2};im({Yes})}
  583.                 );
  584.             },
  585.             MEMO,{DOUBLE;im({Yes})},
  586.             ,{im({Yes})}
  587.             );
  588.         });
  589.     };
  590.  
  591. /*    ID一覧ダブルクリック時の処理    */
  592. %DOUBLE    {
  593.     %LineNo    @xlinenum;
  594.     %MemoLine @nolmemo(MEMO)-1;
  595.     %line1    @case    (LineNo>MemoLine,
  596.             {Yes},
  597.             {im(@memo(MEMO,MemoLine,1))},
  598.             {No},
  599.             {case    (LineNo<=0,
  600.                 {Yes},{im(@memo(MEMO,1,1))},
  601.                 {No},{im(@memo(MEMO,LineNo,1))}
  602.                 );
  603.             });
  604.     %HANDLE @head(@getchar(line1,12),{\n});
  605.     SNDMSG({erande_f.snd});
  606.     select({処理を選択せよ!  対象 }|HANDLE,
  607.         Wtime4,,
  608.         { プロフィールを見る(/PR    )},PROFLOOK,
  609.         { 情報を見る        (/Who  )},WHOLOOK,
  610.         { メッセージを送る  (/SEnd)},SEND,
  611.         { メッセージを送る  (/Page)},PAGE
  612.         );
  613.     };
  614.  
  615. /*    プロフィールを見る    */
  616. %PROFLOOK{
  617.     case(@mcheck=0,{Yes},{mopen(MEMO)});
  618.     case    (@memo(MEMO)={},
  619.         {No},{
  620.     %LineNo @xlinenum;
  621.     %MemoLine @nolmemo(MEMO)-1;
  622.     %line1    @case    (LineNo>MemoLine,
  623.             {Yes},
  624.             {im(@memo(MEMO,MemoLine,1))},
  625.             {No},
  626.             {case    (LineNo<=0,
  627.                 {Yes},{im(@memo(MEMO,1,1))},
  628.                 {No},{im(@memo(MEMO,LineNo,1))}
  629.                 );
  630.             });
  631.     %PROFID @getchar(line1,12,8);
  632.     type({/PR }|PROFID|{\n});});
  633.     mclose(1);
  634.     };
  635.  
  636. /*    情報を見る    */
  637. %WHOLOOK{
  638.     case(@mcheck=0,{Yes},{mopen(MEMO)});
  639.     case    (@memo(MEMO)={},
  640.         {No},{
  641.     %LineNo @xlinenum;
  642.     %MemoLine @nolmemo(MEMO)-1;
  643.     %line1    @case    (LineNo>MemoLine,
  644.             {Yes},
  645.             {im(@memo(MEMO,MemoLine,1))},
  646.             {No},
  647.             {case    (LineNo<=0,
  648.                 {Yes},{im(@memo(MEMO,1,1))},
  649.                 {No},{im(@memo(MEMO,LineNo,1))}
  650.                 );
  651.             });
  652.     %WHOJOB @tail(@getchar(line1,1,4),{ });
  653.     type({/Who }|WHOJOB|{\n});});
  654.     mclose(1);
  655.     };
  656.  
  657. /*    /SEndする    */
  658. %SEND    {
  659.     case(@mcheck=0,{Yes},{mopen(MEMO)});
  660.     case    (@memo(MEMO)={},
  661.         {No},{
  662.     %LineNo @xlinenum;
  663.     %MemoLine @nolmemo(MEMO)-1;
  664.     %line1    @case    (LineNo>MemoLine,
  665.             {Yes},
  666.             {im(@memo(MEMO,MemoLine,1))},
  667.             {No},
  668.             {case    (LineNo<=0,
  669.                 {Yes},{im(@memo(MEMO,1,1))},
  670.                 {No},{im(@memo(MEMO,LineNo,1))}
  671.                 );
  672.             });
  673.     %SENDID @getchar(line1,12,8);
  674.     SNDMSG({nyuryo_f.snd});
  675.     %sendmes @input({送信するメッセージを入力せよ!},{c});
  676.     type({/SEnd }|SENDID|{ }|sendmes|{\n});});
  677.     mclose(1);
  678.     };
  679.  
  680. /*    Pするォィォィ    */
  681. %PAGE    {
  682.     case(@mcheck=0,{Yes},{mopen(MEMO)});
  683.     case    (@memo(MEMO)={},
  684.         {No},{
  685.     %LineNo @xlinenum;
  686.     %MemoLine @nolmemo(MEMO)-1;
  687.     %line1    @case    (LineNo>MemoLine,
  688.             {Yes},
  689.             {im(@memo(MEMO,MemoLine,1))},
  690.             {No},
  691.             {case    (LineNo<=0,
  692.                 {Yes},{im(@memo(MEMO,1,1))},
  693.                 {No},{im(@memo(MEMO,LineNo,1))}
  694.                 );
  695.             });
  696.     %PJOB @tail(@getchar(line1,1,4),{ });
  697.     SNDMSG({nyuryo_f.snd});
  698.     %sendmes @input({送信するメッセージを入力せよ!},{c});
  699.     type({/Page }|PJOB|{ }|sendmes|{\n})});
  700.     mclose(1);
  701.     };
  702.  
  703. /*    発言する    */
  704. %SAY    {
  705.     case(@mcheck=0, {Yes},{mopen(MEMO)},
  706.             {No},{
  707.     case    (@memo(MEMO)={},
  708.         {No},{
  709.     %LineNo @xlinenum;
  710.     %MemoLine @nolmemo(MEMO)-1;
  711.     %line1    @case    (LineNo>MemoLine,
  712.             {Yes},
  713.             {im(@memo(MEMO,MemoLine,1))},
  714.             {No},
  715.             {case    (LineNo<=0,
  716.                 {Yes},{im(@memo(MEMO,1,1))},
  717.                 {No},{im(@memo(MEMO,LineNo,1))}
  718.                 );
  719.             });
  720.     HANDLE2:= @head(@getchar(line1,21),{\n});
  721.         });});
  722.     SNDMSG({nyuryo_f.snd});
  723.     %sendmes @input({発言},{u});
  724.     type(sendmes|{>}|HANDLE2|{さん\n});
  725.     mclose(1);
  726.     };
  727.  
  728. /*    ハンドルリスト取得    */
  729. %U    {
  730.     type({/U }|CH|{\n});
  731.     delfile(TEMP2|{rtc.men});
  732.     wait    (Wtime4,,
  733.         {HANDLE          \n},
  734.         {
  735.         loop    ({
  736.             wait    (3,{im({No})},
  737.                 {\n},
  738.                 {
  739.                 case    (@nochar(@tail(@body(@laststr(50),{\n}),
  740.                     {    }|CH|{  },{ }))={8},
  741.                     {Yes},
  742.                     {
  743.                     write(TEMP2|{rtc.men},
  744.                         @body(@laststr(50),{\n}));
  745.                     im({Yes});
  746.                     },
  747.                     {No},
  748.                     {
  749.                     case    (@getchar(@body(@laststr(50),
  750.                         {\n}),1,3)={(}|CH|{,},
  751.                         {Yes},{im({No})},
  752.                         ,{im({Yes})}
  753.                         );
  754.                     });
  755.                 },
  756.                 {\n(1,},
  757.                 {im({No})},
  758.                 {\n(2,},
  759.                 {im({No})}
  760.                 );
  761.             });
  762.         case(@mcheck={0},{No},{mclose(1)});
  763.         madd(MEMO,{\n});
  764.         mclear(MEMO);
  765.         case(@filechk(TEMP2|{rtc.men}),
  766.             {Yes},{mread(TEMP2|{rtc.men},MEMO)});
  767.         mopen(MEMO,350,21,639,201,{r});
  768.         mclose(1);
  769.         },
  770.         {◆該当するユーザーはいません◆\n},
  771.         );
  772.     };
  773.  
  774. /*    専念モード(なんじゃそりゃ)    */
  775. %SPEMODE{
  776.     var B[1];    /*    footnoteのページ    */
  777.     var PF[2];    /*    押したPFキーの番号    */
  778.     B:=1;
  779.     U;
  780.     SPEMODE2;
  781.     SPEMODE3;
  782.     chat({No});
  783.     loop    ({
  784.         SNDMSG({nyuryo_f.snd});
  785.         footnote({送信する文章を入力せよ!(その後宛先指定)});
  786.         %mes    @input({発言},{u});
  787.         loop    ({
  788.             footnote(foottxt,{b});
  789.             waitx();
  790.             case    (@xtype,
  791.                 MEMO,{case(@mlast=MEMO,{Yes},{SAY});im({No})},
  792.                 {-2},{im({Yes})},
  793.                 {101},{PF:={1};SENDMES;im({No})},
  794.                 {201},{PF:={1};SENDMES;im({No})},
  795.                 {102},{PF:={2};SENDMES;im({No})},
  796.                 {202},{PF:={2};SENDMES;im({No})},
  797.                 {103},{PF:={3};SENDMES;im({No})},
  798.                 {203},{PF:={3};SENDMES;im({No})},
  799.                 {104},{PF:={4};SENDMES;im({No})},
  800.                 {204},{PF:={4};SENDMES;im({No})},
  801.                 {105},{PF:={5};SENDMES;im({No})},
  802.                 {205},{PF:={5};SENDMES;im({No})},
  803.                 {106},{PF:={6};SENDMES;im({No})},
  804.                 {206},{PF:={6};SENDMES;im({No})},
  805.                 {107},{PF:={7};SENDMES;im({No})},
  806.                 {207},{PF:={7};SENDMES;im({No})},
  807.                 {108},{PF:={8};SENDMES;im({No})},
  808.                 {208},{PF:={8};SENDMES;im({No})},
  809.                 {109},{PF:={13};im({No})},
  810.                 {209},{PF:={13};im({No})},
  811.                 {110},{U;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
  812.                 {210},{U;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
  813.                 {111},{case(B=1,
  814.                     {Yes},{B:=4;SPEMODE3;im({Yes})},
  815.                     {No},{B:=B-1;SPEMODE3;im({Yes})})},
  816.                 {211},{case(B=1,
  817.                     {Yes},{B:=4;SPEMODE3;im({Yes})},
  818.                     {No},{B:=B-1;SPEMODE3;im({Yes})})},
  819.                 {112},{case(B=4,
  820.                     {Yes},{B:=1;SPEMODE3;im({Yes})},
  821.                     {No},{B:=B+1;SPEMODE3;im({Yes})})},
  822.                 {212},{case(B=4,
  823.                     {Yes},{B:=1;SPEMODE3;im({Yes})},
  824.                     {No},{B:=B+1;SPEMODE3;im({Yes})})},
  825.                 ,{im({Yes})}
  826.                 );
  827.             });
  828.         case(PF,13,{im({No})},,{im({Yes})});
  829.         });
  830.     chat({Yes});
  831.     };
  832.  
  833. /*    専念モード宛先付発言送信    */
  834. %SENDMES{
  835.     %C @case(B,    1,{im(PF)},    2,{im({6}+PF)},
  836.             3,{im({12}+PF)},4,{im({18}+PF)});
  837.     %HANDLE    @case    (PF,
  838.             {7},{im({ALL})},
  839.             {8},{im({})},
  840.             ,{im(@head(@getline(HANDLE3,C,1),{\n}))}
  841.             );
  842.     case    (HANDLE,
  843.         {},{type(mes|{\n})},
  844.         {ALL},{type(mes|{>ALL\n})},
  845.         ,{type(mes|{>}|HANDLE|{さん\n})}
  846.         );
  847.     };
  848.  
  849. /*    専念モード用ハンドルデータ作成(ハンドル\n・・・)    */
  850. %SPEMODE2{
  851.     case    (@filechk(TEMP2|{rtc.men}),
  852.         {Yes},
  853.         {
  854.         %LIST @read(TEMP2|{rtc.men});
  855.         A:=1;
  856.         HANDLE3:={};
  857.         loop    ({
  858.             %HANDLE @head(@getchar(@getline(LIST,A,1),21),{\n});
  859.             case    (HANDLE={},
  860.                 {No},    {HANDLE3:=HANDLE3|HANDLE|{\n};
  861.                     A:=A+1;
  862.                     im({Yes})},
  863.                 {Yes},    {im({No})});
  864.             });
  865.         });
  866.     };
  867.  
  868. /*    専念モード用ハンドルデータを元にしてfootnoteのボタンを作る*/
  869. %SPEMODE3{
  870.     %C    @case(B,1,{im({1})},2,{im({7})},3,{im({13})},4,{im({19})});
  871.     %HANDLE @getline(HANDLE3,C);
  872.     var    handle    [4];
  873.     foottxt:={};
  874.     %foottxt2 {----------------------------------------};
  875.     A:=1;
  876.     loop    ({
  877.         handle:=@getchar(@head(@getline(HANDLE,A,1),{\n}),1,4);
  878.         case    (handle={},
  879.             {No},    {
  880.                 case    (@nochar(handle),
  881.                     1,{handle:=handle|{   }},
  882.                     2,{handle:=handle|{  }},
  883.                     3,{handle:=handle|{ }}
  884.                     );
  885.                 foottxt:=foottxt|handle;
  886.                 case(A,6,{im({No})},,{A:=A+1;im({Yes})})
  887.                 },
  888.             {Yes},    {A:=A-1;im({No})});
  889.         });
  890.     case    (A=6,{No},{foottxt:=foottxt|@getchar(foottxt2,1,(6-A)*4)});
  891.     foottxt:=foottxt|{ALL NON 戻るスラユー前項次項};
  892.     };
  893.  
  894. /*    RTCモード終了処理    */
  895. %rtcend    {
  896.     loop    ({
  897.         case(@mcheck>=MEMO,{Yes},{mclose(3)});
  898.         im(@mcheck>=MEMO);
  899.         });
  900.     CloseAllMemo;
  901.     loop    ({
  902.         case    (@mlast>=MEMO,
  903.             {Yes},
  904.             {
  905.             case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
  906.             mclose(3);
  907.             im({Yes});
  908.             },
  909.             {No},
  910.             {im({No})}
  911.             );
  912.         });
  913.     };
  914.  
  915.  
  916. /*    ファイル清書    */
  917. %FORM    {
  918.     %memono    @mcheck;
  919.     case    (memono!=0,
  920.         {Yes},
  921.         {
  922.         footnote({メモ}|memono|{を清書します});
  923.         mclose(1);
  924.         delfile(TEMP2|{fapx$$$_.$$$});
  925.         delfile(TEMP2|{fapx$$$_});
  926.         mwrite(TEMP2|{fapx$$$_.$$$},memono);
  927.         %cdir    @getcdir;
  928.         setcdir(CDIR);
  929.         dispoff(!DEBUG);
  930.         command({txf -i }|TEMP2|{fapx$$$_.$$$ -o }|TEMP2|{fapx$$$_});
  931.         setcdir(cdir);
  932.         dispoff({No});
  933.         case    (@filechk(TEMP2|{fapx$$$_}),
  934.             {Yes},
  935.             {
  936.             mclear(memono);
  937.             mread(TEMP2|{fapx$$$_},memono);
  938.             mopen(memono);
  939.             },
  940.             {No},
  941.             {
  942.             display({清書機能には TXF.EXE がパスの通った}|
  943.                 {ディレクトリに必要です\n});
  944.             wait(2);
  945.             mopen(memono);
  946.             });
  947.         delfile(TEMP2|{fapx$$$_.$$$});
  948.         delfile(TEMP2|{fapx$$$_});
  949.         });
  950.     };
  951.  
  952. /************************************************************************
  953. *    自由行動処理メイン                        *
  954. ************************************************************************/
  955. var    CHeck [3];    /* ログ記録中フラグ        */
  956. var    Ex [1];        /* 自由行動終了要求フラグ    */
  957. loop({ case (Ex<>{Y},{Yes},{GOCHAT;im({Yes})},{No},{im({No})})});
  958.